package edu.umassd.raddacl;

import java.util.Collection;

/**
 * A step represents a part of the clustering algorithm. Implementations should
 * describe what the incoming data should look like, and what the results of the
 * step should produce.
 * 
 * @author Dan Avila
 * 
 */
public interface Step
{
	/**
	 * Performs this step on the incoming data.
	 * 
	 * @param clusters
	 *            - the current state of the clusters. This is the major feature
	 *            of the clustering algorithm.
	 * @param data
	 *            - the overall dataset.
	 */
	void perform(Collection<Cluster> clusters, DataSet data);
}
